//
//  YWTroubleMissionManager.h
//  maintain
//
//  Created by 烟雨云渊 on 17/3/7.
//  Copyright © 2017年 ewin. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "YWSingleton.h"
#import "YWMission.h"
#import "YWEquipmentTroubleRecord.h"

@class YWTroubleMissionModel;

@interface YWTroubleMissionManager : NSObject
YWSingletonH(Manager)
/**
 *  更新维修数据库表，数组更新
 *
 *  @param troubleMissionArray 更新维修数组
 *
 *  @return 结果
 */
- (BOOL)updateTroubleMissionWithArray:(NSArray*)troubleMissionArray needUpdateReportTrouble:(BOOL)need;
/**
 *  设置维修任务上传失败
 *
 *  @param troubleMission 维修模型
 *
 *  @return 结果
 */
- (BOOL)setUploadFailWithTroubleMissionModel:(YWTroubleMissionModel*)troubleMission;
/**
 *  获取所有的我的维修
 *
 *  @param page 页数
 *
 *  @return 结果
 */
- (NSArray*)troubleMissionModelWithStatus:(YWTroubleMissionStatus)status page:(NSInteger)page;
/**
 *  通过troubleId获取维修任务
 *
 *  @param troubleId 维修Id
 *
 *  @return 结果
 */
- (YWTroubleMissionModel*)troubleMissionModelWithTroubleId:(NSInteger)troubleId;
/**
 *  保存维修记录
 *
 *  @param troubleRectroubleRecordJsonsord 维修记录Json模型
 *  @return 结果
 */
- (BOOL)saveTroubleRecordJsons:(NSArray*)troubleRecordJsons;
/**
 *  更新维修记录(用于本地)
 *
 *  @param troubleRecord 维修记录模型
 *  @return 结果
 */
- (BOOL)updateTroubleRecord:(YWEquipmentTroubleRecord*)troubleRecord;
/**
 *  按照页数获取维修记录
 *
 *  @param equipmentId 设备Id
 *  @param page 页数
 *
 *  @return 维修记录模型数组
 */
- (NSArray*)troubleRecordArrayWithEquipmentId:(NSString*)equipmentId andPage:(NSInteger)page;
/**
 *  获取维修任务的维修记录
 *
 *  @param missionId 任务Id
 *
 *  @return 维修记录模型
 */
- (YWEquipmentTroubleRecord*)troubleRecordWithMissionId:(NSInteger)missionId;
/**
 *  更新维修单状态
 *
 *  @param status 报障单状态
 *
 *  @return 结果
 */
-(BOOL)updateTroubleMissionStatus:(NSInteger)status troubleId:(NSInteger)troubleId;
/**
 *  请求设备的维修记录
 *
 *  @param equipmentIds 设备Id串
 *
 *  @return 结果
 */
- (void)requestTroubleRecordWithEquipmentIds:(NSString*)equipmentIds page:(NSInteger)page pageSize:(NSInteger)pageSize completeBlock:(void (^)(NSInteger))complete;
/**
 *  请求维修任务（执行人是我）
 *
 *  @return 无
 */
- (void)requestTroubleMissionWithPage:(NSInteger)page pageSize:(NSInteger)pageSize troubleStatus:(NSInteger)troubleStatus completeBlock:(void (^)(NSInteger))complete;
/**
 *  开始后台上传任务
 *  @param records        记录模型数组(维修)
 *  @param troubleMission 使用维修模型
 *  @param pictures       记录中所有的图片
 */
- (void)startUploadTroubleMissionRecords:(NSArray*)records troubleMissionModel:(YWTroubleMissionModel*)mission pictures:(NSArray*)pictures;
/**
 * 上传失败的维修
 */
- (void)startUnUploadTroubleMissionRecord;
/**
 *  获取上传维修任务
 *
 *  @return 任务模型数组
 */
- (NSArray*)uploadFailTroubleMissionArray;
/**
 *  更新维修任务的数据状态
 *
 *  @return 无
 */
- (void)updateTroubleMissionModelStatus;
/**
 *  请求多个维修任务的状态
 *
 *  @return 无
 */
- (void)requestTroubleMissionStatus:(NSString*)troubleIdString withComplete:(void (^)(bool success))complete;
@end
